struts2总结(三)--Struts Tags

5 Struts Tags

要在jsp中使用Struts2的标签,需要先引入<%@ taglib prefix="s" uri="/struts-tags" %>

5.1 通用标签

  • property

    1
    2
    3
    4
    <li>property: <s:property value="username"/> </li>
    <li>property 取值为字符串: <s:property value="'username'"/> </li>
    <li>property 设定默认值: <s:property value="admin" default="管理员"/> </li>
    <li>property 设定HTML: <s:property value="'<hr/>'" escape="false"/> </li>
  • set 将某个值放入指定范围内

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <li>set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /></li>
    <li>set 从request取值: <s:property value="#request.adminName" /></li>
    <li>set 从ActionContext取值: <s:property value="#adminName" /></li>
    <%--<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li>
    <li>set 从相应范围取值: <%=pageContext.getAttribute("adminPassword") %></li>
    --%>
    <li>set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/></li>
    <li>set 使用#取值: <s:property value="#adminPassword"/> </li>
    <li>set 从相应范围取值: <s:property value="#session.adminPassword"/> </li>
  • bean 实例化一个JavaBean

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <li>bean 定义bean,并使用param来设定新的属性值:
    <s:bean name="com.struts2.tags.Dog" >
    <s:param name="name" value="'pp'"></s:param>
    <s:property value="name"/>
    </s:bean>
    </li>
    <li>bean 查看debug情况:
    <s:bean name="com.struts2.tags.Dog" var="myDog">
    <s:param name="name" value="'oudy'"></s:param>
    </s:bean>
    拿出值:
    <s:property value="#myDog.name"/>
    </li>
  • include 将一JSP或者Servlet包含到当前页面

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <li>include _include1.html 包含静态英文文件
    <s:include value="/_include1.html"></s:include>
    </li>
    <li>include _include2.html 包含静态中文文件
    <s:include value="/_include2.html"></s:include>
    </li>
    <li>include _include1.html 包含静态英文文件,说明%用法
    <s:set var="incPage" value="%{'/_include1.html'}" />
    <s:include value="%{#incPage}"></s:include>
    </li>
  • param 为其他标签提供参数

  • debug 辅助调试,查看值栈等信息

    5.2 控制标签

  • if elseif else 用来控制选择输出的标签

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <li>if elseif else:
    age = <s:property value="#parameters.age[0]" /> <br />
    <s:set var="age" value="#parameters.age[0]" />
    <s:if test="#age < 0">wrong age!</s:if>
    <s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>
    <s:else>yeah!</s:else><br />
    <s:if test="#parameters.aaa == null">null</s:if>
    </li>
  • iterator 迭代器,用于将集合迭代输出

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <li>遍历集合:<br />
    <s:iterator value="{1, 2, 3}" >
    <s:property/> |
    </s:iterator>
    </li>
    <li>自定义变量:<br />
    <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
    <s:property value="#x.toUpperCase()"/> |
    </s:iterator>
    </li>
    <li>使用status:<br />
    <s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
    <s:property/> |
    遍历过的元素总数:<s:property value="#status.count"/> |
    遍历过的元素索引:<s:property value="#status.index"/> |
    当前是偶数?:<s:property value="#status.even"/> |
    当前是奇数?:<s:property value="#status.odd"/> |
    是第一个元素吗?:<s:property value="#status.first"/> |
    是最后一个元素吗?:<s:property value="#status.last"/>
    <br />
    </s:iterator>
    </li>
    <li>
    <s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
    <s:property value="key"/> | <s:property value="value"/> <br />
    </s:iterator>
    </li>
    <li>
    <s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
    <s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
    </s:iterator>
    </li>
    <li>
    <s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>
    </li>
  • subset 用于截取集合的部分元素,形成新的子集合

    5.3 UI标签

    Struts2中一共定义了4个主题,simple, XHTML(默认), css_xhtml, ajax.

    5.4 AJAX标签

    后续可以查

    5.5 $ # % 的区别

  • $用于i18n和struts配置文件

  • #取得ActionContext的值
  • %将原本的文本属性解析为OGNL,对本来是OGNL的属性不起作用

参考文章

这部分用的不多,所以存了几个相关的比较全的博客地址,方便需要的时候去学习:
Struts2标签小结
UI标签
AJAX标签

Donate comment here